unit PesquisaFornecedor;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UFormPesquisa, DB, DBTables, StdCtrls, Grids, DBGrids, Buttons,
  ExtCtrls, Mask, DBCtrls;

type
  TFPesquisaFornecedor = class(TFormPesquisa)
    RGTipoFornecedor: TRadioGroup;
    Label9: TLabel;
    MECpfCNPJ: TMaskEdit;
    Label1: TLabel;
    Label2: TLabel;
    ENome: TEdit;
    EFantasia: TEdit;
    ECodigo: TEdit;
    Label3: TLabel;
    rgContaContabil: TRadioGroup;
    dsGrupos: TDataSource;
    Label19: TLabel;
    dblGrupos: TDBLookupComboBox;
    procedure RGTipoFornecedorClick(Sender: TObject);
    procedure BtnConsultarClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BtnImprimirClick(Sender: TObject);
    procedure BtnSelecionarClick(Sender: TObject);
    procedure BtnLimparClick(Sender: TObject);
    procedure ECodigoKeyPress(Sender: TObject; var Key: Char);
    procedure dblGruposKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
   tela               : String;
  end;

var
  FPesquisaFornecedor: TFPesquisaFornecedor;

implementation

uses CadastroFornecedor, RelatorioFornecedor, UFormRelatorio, UGeral,
  ContasPagar, UDmGestao;



{$R *.dfm}

procedure TFPesquisaFornecedor.RGTipoFornecedorClick(Sender: TObject);
begin
  inherited;
 case RGTipoFornecedor.ItemIndex of
  1 :  Begin
        Label9.Caption:='CPF';
        MECpfCNPJ.EditMask:=CPF;
        MECpfCNPJ.Width:=110;
       end;
  2 :  begin
        Label9.Caption:='CNPJ';
        MECpfCNPJ.EditMask:=CNPJ;
        MECpfCNPJ.Width:=112;
       end;
  3 :  begin
        Label9.Caption:='Outros';
        MECpfCNPJ.EditMask:='';
        MECpfCNPJ.Width:=112;
        MECpfCNPJ.MaxLength:=20;
       end;

 end;
 MECpfCNPJ.Text:='';
end;

procedure TFPesquisaFornecedor.BtnConsultarClick(Sender: TObject);
begin
 QPesquisa.close;
 QPesquisa.SQL.Clear;
 QPesquisa.SQL.Add('Select distinct Fornecedor.*,planoContabilidade.PLANOCONT_CODIGOCONTABIL,planoContabilidade.PLANOCONT_DESCRICAO ');
 QPesquisa.SQL.Add('from Fornecedor left join planoContabilidade on FORN_CONTACONTABIL = PLANOCONT_CODIGO ');
 QPesquisa.SQL.Add('Where (1 = 1)');

  if ECodigo.Text <> '' then
  begin
    QPesquisa.SQL.Add(' And (Forn_Codigo = :Cod)');
    QPesquisa.ParamByName('Cod').AsString:=ECodigo.Text;
  end;

  case RGTipoFornecedor.ItemIndex of
    1: QPesquisa.SQL.Add(' and (FORN_TIPOFORNECEDOR = 0)');
    2: QPesquisa.SQL.Add(' and (FORN_TIPOFORNECEDOR = 1)');
    3: QPesquisa.SQL.Add(' and (FORN_TIPOFORNECEDOR = 2)');
  end;

  case rgContaContabil.ItemIndex of
    1: QPesquisa.SQL.Add(' and (planoContabilidade.PLANOCONT_CODIGOCONTABIL is not null)');
    2: QPesquisa.SQL.Add(' and (planoContabilidade.PLANOCONT_CODIGOCONTABIL is null)');
  end;

  if ENome.Text <> '' then
  begin
    QPesquisa.SQL.Add(' And (Forn_Razao Like :Raz)');
    QPesquisa.ParamByName('Raz').AsString:='%' + ENome.Text +'%' ;
  end;

  if EFantasia.Text <> '' then
  begin
    QPesquisa.SQL.Add(' And (Forn_Fantasia Like :Fant)');
    QPesquisa.ParamByName('Fant').AsString:='%' + EFantasia.Text +'%' ;
  end;

  if dblGrupos.KeyValue <> null then
    QPesquisa.SQL.Add(' And (FORN_FK_GRUPO = '+ VarToStr(dblGrupos.KeyValue) +')'); 

  if MECpfCNPJ.Text <> '' then
  begin
    QPesquisa.SQL.Add(' And (Forn_CpFCNPJ = :Cpf)');
    QPesquisa.ParamByName('Cpf').AsString:=MECpfCNPJ.Text;
  end;

  QPesquisa.SQL.Add(' order by FORN_GRUPO,FORN_RAZAO,FORN_COD_CENTRO_CUSTO');
  QPesquisa.Open;
  inherited;
end;

procedure TFPesquisaFornecedor.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 if tela = 'CADASTROFORNECEDOR' then
  begin
   FCadastroFornecedor.Enabled:=true;
   FCadastroFornecedor.Show;
  end
 else
  if tela = 'CPFORNECEDOR' then
   begin
    FContasPagar.Enabled:=true;
    FContasPagar.Show;
   end;
 FPesquisaFornecedor:=nil;
 inherited;
end;

procedure TFPesquisaFornecedor.BtnImprimirClick(Sender: TObject);
begin
  inherited;
 DSPesquisa.Enabled:=false;
 Application.CreateForm(TFRelatorioFornecedor, FRelatorioFornecedor);
 with FRelatorioFornecedor do
  begin
   QRLNomeRelatorio.Caption:='FORNECEDORES';
   QuickRep1.DataSet:=QPesquisa;
   QuickRep1.Prepare;
   QuickRep1.Preview;
   close;
  end;
 DSPesquisa.Enabled:=true;
end;

procedure TFPesquisaFornecedor.BtnSelecionarClick(Sender: TObject);
begin
  inherited;               {
 if tela = 'CADASTROFORNECEDOR' then
  begin
   FCadastroFornecedor.dsCadastro.DataSet.Close;
   FCadastroFornecedor.dsCadastro.DataSet.Open;
   FCadastroFornecedor.dsCadastro.DataSet.Locate('Forn_Codigo',QPesquisa.fieldByname('Forn_Codigo').AsString,[loCaseInsensitive]);
   FCadastroFornecedor.filtra;
  end
 else
 if tela = 'CPFORNECEDOR' then
  FContasPagar.QContasPagar.FieldByName('CP_FORNECEDOR').AsInteger:=QPesquisa.fieldByname('Forn_Codigo').AsInteger;
 Self.Close;
                            }
end;

procedure TFPesquisaFornecedor.BtnLimparClick(Sender: TObject);
begin
  inherited;
  ECodigo.Text:='';
  ENome.Text:='';
  EFantasia.Text:='';
  MECpfCNPJ.Text:='';
  dblGrupos.KeyValue := null;
end;

procedure TFPesquisaFornecedor.ECodigoKeyPress(Sender: TObject;
  var Key: Char);
begin
  inherited;
 if not(key in ['0'..'9',#8]) then
  key:=#0;

end;

procedure TFPesquisaFornecedor.dblGruposKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if key = vk_delete then
    TDBLookupComboBox(sender).KeyValue := null;
end;

end.
